home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-braden-realtime-outline-00.txt < prev    next >
Text File  |  1993-10-26  |  81KB  |  1,706 lines

  1. Internet Draft                                                Bob Braden
  2. Expires: April 1994                                              USC-ISI
  3. File: draft-braden-realtime-outline-00.txt                    Dave Clark
  4.                                                                      MIT
  5.                                                            Scott Shenker
  6.                                                               Xerox PARC
  7.                                                             October 1993
  8.  
  9.  
  10.     Integrated Services in the Internet Architecture: an Overview.
  11.  
  12.  
  13. Status of Memo
  14.  
  15.    This document is an Internet-Draft.  Internet-Drafts are working
  16.    documents of the Internet Engineering Task Force (IETF), its Areas,
  17.    and its Working Groups.  Note that other groups may also distribute
  18.    working documents as Internet-Drafts.
  19.  
  20.    Internet-Drafts are draft documents valid for a maximum of six
  21.    months.  Internet-Drafts may be updated, replaced, or obsoleted by
  22.    other documents at any time.  It is not appropriate to use Internet-
  23.    Drafts as reference material or to cite them other than as a "working
  24.    draft" or "work in progress."
  25.  
  26. Abstract
  27.  
  28.    This memo discusses a proposed extension to the Internet architecture
  29.    and protocols to provide integrated services, i.e., to support real-
  30.    time as well as the current non-real-time service of IP.  This
  31.    extension is necessary to meet the growing need for real-time service
  32.    for multimedia applications.
  33.  
  34.    This memo represents the direct product of recent work by Dave Clark,
  35.    John Wroclawski, Scott Shenker, Lixia Zhang, Sugih Jamin, Deborah
  36.    Estrin, Bob Braden, and Shai Herzog, and indirectly draws upon the
  37.    work of many others.
  38.  
  39.  
  40. 1. Introduction
  41.  
  42.    The multicasts of IETF meetings across the Internet have formed a
  43.    large-scale experiment in sending digitized voice and video through a
  44.    packet-switched infrastructure.  These highly-visible experiments
  45.    have depended upon three enabling technologies.  (1) Many modern
  46.    workstations now come equipped with built-in multimedia hardware,
  47.    including audio codecs and video frame-grabbers, and the necessary
  48.    video gear is now inexpensive.  (2) IP multicasting, which is not yet
  49.  
  50.  
  51.  
  52. TBD                                                             [Page 1]
  53.  
  54.  
  55.  
  56.  
  57. Internet Draft      Integrated Services Architecture        October 1993
  58.  
  59.  
  60.    generally available in commercial routers, is being provided by the
  61.    MBONE, a temporary "multicast backbone".  (3) Highly-sophisticated
  62.    digital audio and video applications have been developed.
  63.  
  64.    These experiments also showed that an important technical element is
  65.    still missing: real-time applications often do not work well across
  66.    the Internet because of variable queueing delays and congestion
  67.    losses.  The Internet, as originally conceived, offers only a very
  68.    simple quality of service (QoS), point-to-point best-effort data
  69.    delivery.  Before real-time applications such as remote video,
  70.    multimedia conferencing, visualization, and virtual reality can be
  71.    broadly used, the Internet infrastructure must be modified to support
  72.    real-time QoS, which provides some control over end-to-end packet
  73.    delays.  This extension must be designed from the beginning for
  74.    multicasting; simply generalizing from the unicast (point-to-point)
  75.    case does not work.
  76.  
  77.    Real-time QoS is not the only issue for a next generation of traffic
  78.    management in the Internet.  Network operators are requesting the
  79.    ability to control the sharing of bandwidth on a particular link
  80.    among different traffic classes.  They want to be able to divide
  81.    traffic into a few administrative classes and assign to each a
  82.    minimum percentage of the link bandwidth under conditions of
  83.    overload, while allowing "unused" bandwidth to be available at other
  84.    times.  These classes may represent different user groups or
  85.    different protocol families, for example.  Such a management facility
  86.    is called controlled link-sharing.  We use the term integrated
  87.    services (IS) for an Internet service model that includes best-effort
  88.    service, real-time service, and controlled link sharing.
  89.  
  90.    The requirements and mechanisms for integrated services have been the
  91.    subjects of much discussion and research over the past several years
  92.    (the literature is much too large to list even a representative
  93.    sample here; see the references in [CSZ92, Floyd92, Jacobson91,
  94.    JSCZ93, Partridge92, SCZ93, RSVP93a] for a partial list).  This work
  95.    has led to the unified approach to integrated services support that
  96.    is described in this memo.  We believe that it is now time to begin
  97.    the engineering that must precede deployment of integrated services
  98.    in the Internet.
  99.  
  100.    Section 2 of this memo introduces the elements of an IS extension of
  101.    the Internet.  Section 3 discusses real-time service models [SCZ93a,
  102.    SCZ93b].  Section 4 discusses traffic control, the forwarding
  103.    algorithms to be used in routers [CSZ92].  Section 5 discusses the
  104.    design of RSVP, a resource setup protocol compatible with the
  105.    assumptions of our IS model [RSVP93a, RSVP93b].
  106.  
  107.  
  108.  
  109.  
  110.  
  111. TBD                                                             [Page 2]
  112.  
  113.  
  114.  
  115.  
  116. Internet Draft      Integrated Services Architecture        October 1993
  117.  
  118.  
  119. 2. ELEMENTS OF THE ARCHITECTURE
  120.  
  121.    The fundamental service model of the Internet, as embodied in the
  122.    best-effort delivery service of IP, has been unchanged since the
  123.    beginning of the Internet research project 20 years ago [CerfKahn74].
  124.    We are now proposing to alter that model to encompass IS.  From an
  125.    academic viewpoint, changing the service model of the Internet is a
  126.    major undertaking; however, its impact is mitigated by the fact that
  127.    we wish only to extend the original architecture.  The new components
  128.    and mechanisms to be added will supplement but not replace the basic
  129.    underlying IP services of the past.
  130.  
  131.    Abstractly, the proposed architectural extension is comprised of two
  132.    elements: (1) an extended service model, which we call the IS model,
  133.    and (2) a reference implementation framework, which gives us a set of
  134.    vocabulary and a generic program organization to realize the IS
  135.    model.  It is important to separate the service model, which defines
  136.    the externally visible behavior, from the discussion of the
  137.    implementation, which may (and should) change during the life of the
  138.    service model.  However, the two are related; to make the service
  139.    model credible, it is useful to provide an example of how it might be
  140.    realized.
  141.  
  142.    2.1 Integrated Services Model
  143.  
  144.       The IS model we are proposing includes two sorts of service
  145.       targeted towards real-time traffic: guaranteed and predictive
  146.       service.  It integrates these services with controlled link-
  147.       sharing, and it is designed to work well with multicast as well as
  148.       unicast.  Deferring a summary of the IS model to Section 3, we
  149.       first discuss some key assumptions behind the model.
  150.  
  151.       The first assumption is that resources (e.g.  bandwidth) must be
  152.       explicitly managed in order to meet application requirements.
  153.       This implies that "resource reservation" and "admission control"
  154.       are key building blocks of the service.  An alternative approach,
  155.       which we reject, is to attempt to support real time without any
  156.       explicit changes to the Internet service model.
  157.  
  158.       The essence of real-time service is the requirement for some
  159.       service guarantees, and we argue that guarantees cannot be
  160.       achieved without reservations.  The term "guarantee" here is to be
  161.       broadly interpreted; they may be absolute or statistical, strict
  162.       or approximate.  However, the user must be able to get a service
  163.       whose quality is sufficiently predictable that the application can
  164.       operate in an acceptable way over a duration of time determined by
  165.       the user.  Again, "sufficiently" and "acceptable" are vague terms.
  166.       In general, stricter guarantees have a higher cost in resources
  167.  
  168.  
  169.  
  170. TBD                                                             [Page 3]
  171.  
  172.  
  173.  
  174.  
  175. Internet Draft      Integrated Services Architecture        October 1993
  176.  
  177.  
  178.       that are made unavailable for sharing with others.
  179.  
  180.       The following arguments have been raised against resource
  181.       guarantees in the Internet.
  182.  
  183.       o    "Bandwidth will be infinite."
  184.  
  185.            The incredibly large carrying capacity of an optical fiber
  186.            leads some to conclude that in the future bandwidth will be
  187.            so abundant, ubiquitous, and cheap that there will be no
  188.            communication delays other than the speed of light, and
  189.            therefore there will be no need to reserve resources.
  190.            However, we believe that this will be impossible in the short
  191.            term and unlikely in the medium term.  While raw bandwidth
  192.            may seem inexpensive, bandwidth provided as a network service
  193.            is not likely to become so cheap that wasting it will be the
  194.            most cost-effective design principle.  Even if low-cost
  195.            bandwidth does eventually become commonly available, we do
  196.            not accept that it will be available "everywhere" in the
  197.            Internet.  Unless we provide for the possibility of dealing
  198.            with congested links, then real-time services will simply be
  199.            precluded in those cases.  We find that restriction
  200.            unacceptable.
  201.  
  202.       o    "Simple priority is sufficient."
  203.  
  204.            It is true that simply giving higher priority to real-time
  205.            traffic would lead to adequate real-time service at some
  206.            times and under some conditions.  But priority is an
  207.            implementation mechanism, not a service model.  If we define
  208.            the service by means of a specific mechanism, we may not get
  209.            the exact features we want.  In the case of simple priority,
  210.            the issue is that as soon as there are too many real-time
  211.            streams competing for the higher priority, every stream is
  212.            degraded.  Restricting our service to this single failure
  213.            mode is unacceptable.  In some cases, users will demand that
  214.            some streams succeed while some new requests receive a "busy
  215.            signal".
  216.  
  217.       o    "Applications can adapt."
  218.  
  219.            The development of adaptive real-time applications, such as
  220.            Jacobson's audio program VAT, does not eliminate the need to
  221.            bound packet delivery time.  Human requirements for
  222.            interaction and intelligibility limit the possible range of
  223.            adaptation to network delays.  We have seen in real
  224.            experiments that, while VAT can adapt to network delays of
  225.            many seconds, the users find that interaction is impossible
  226.  
  227.  
  228.  
  229. TBD                                                             [Page 4]
  230.  
  231.  
  232.  
  233.  
  234. Internet Draft      Integrated Services Architecture        October 1993
  235.  
  236.  
  237.            in these cases.
  238.  
  239.  
  240.       We conclude that the requirement for resource reservation is
  241.       inescapable.  Resource reservation in turn requires adding flow-
  242.       specific control state in the routers, which represents an
  243.       important and fundamental change to the Internet model.  The
  244.       Internet architecture was been founded on the concept that all
  245.       flow-related state should be in the end systems [Clark88].
  246.       Designing the TCP/IP protocol suite on this concept led to a
  247.       robustness that is one of the keys to its success.  In section 5
  248.       we discuss how the flow state added to the routers for resource
  249.       reservation can be made `soft', to preserve the robustness of the
  250.       Internet protocol suite.
  251.  
  252.       We make another fundamental assumption, that it is desirable to
  253.       use the Internet as a common infrastructure to support both non-
  254.       real-time and real-time communication.  One could alternatively
  255.       build an entirely new, parallel infrastructure for real-time
  256.       services, leaving the Internet unchanged.  We reject this
  257.       approach, as it would lose the significant advantages of
  258.       statistical sharing between real-time and non-real-time traffic,
  259.       and it would be much more complex to build and administer than a
  260.       common infrastructure.
  261.  
  262.       In addition to this assumption of common infrastructure, we adopt
  263.       a unified protocol stack model, employing a single internet-layer
  264.       protocol for both real-time and non-real-time service.  Thus, we
  265.       propose to use the existing internet-layer protocol (e.g., IP or
  266.       CLNP) for real-time data.  Another approach would be to add a new
  267.       real-time protocol in the internet layer [ST2-90].  Our unified
  268.       stack approach provides economy of mechanism, and it allows us to
  269.       fold controlled link-sharing in easily.  It also handles the
  270.       problem of partial coverage, i.e., allowing interoperation between
  271.       IS-capable Internet systems and systems that have not been
  272.       extended, without the complexity of tunneling.
  273.  
  274.       We take the view that there should be a single service model for
  275.       the Internet.  If there were different service models in different
  276.       parts of the Internet, it is very difficult to see how any end-
  277.       to-end service quality statements could be made.  However, a
  278.       single service model does not necessarily imply a single
  279.       implementation for packet scheduling or admission control.
  280.       Although specific packet scheduling and admission control
  281.       mechanisms that satisfy our service model have been developed, it
  282.       is quite possible that other mechanisms will also satisfy the
  283.       service model.  The reference implementation framework, introduced
  284.       below, is intended to allow discussion of implementation issues
  285.  
  286.  
  287.  
  288. TBD                                                             [Page 5]
  289.  
  290.  
  291.  
  292.  
  293. Internet Draft      Integrated Services Architecture        October 1993
  294.  
  295.  
  296.       without mandating a single design.
  297.  
  298.       Based upon these considerations, we believe that an integrated
  299.       services extension that includes additional flow state in routers
  300.       and an explicit setup mechanism is necessary to provide the needed
  301.       service.  A partial solution short of this point would not be a
  302.       wise investment.  We believe that the extensions we propose
  303.       preserve the essential robustness and efficiency of the Internet
  304.       architecture, and they allow efficient management of the
  305.       resources; these will be important goals even if bandwidth becomes
  306.       very inexpensive.
  307.  
  308.    2.2 Reference Implementation Framework
  309.  
  310.       We propose a reference implementation framework to realize the IS
  311.       model.  This framework includes four components: the packet
  312.       scheduler, the admission control routine, the classifier, and the
  313.       reservation setup protocol.  These are discussed briefly below and
  314.       more fully in Sections 4 and 5.
  315.  
  316.       In the ensuing discussion, we define the "flow" abstraction as a
  317.       distinguishable stream of related datagrams that results from a
  318.       single user activity and requires the same QoS.  For example, a
  319.       flow might consist of one transport connection or one video stream
  320.       between a given host pair.  It is the finest granularity of packet
  321.       stream distinguishable by the IS.  We define a flow to be simplex,
  322.       i.e., to have a single source but N destinations.  Thus, an N-way
  323.       teleconference will generally require N flows, one originating at
  324.       each site.
  325.  
  326.       In today's Internet, IP forwarding is completely egalitarian; all
  327.       packets receive the same quality of service, and packets are
  328.       typically forwarded using a strict FIFO queueing discipline.  For
  329.       integrated services, a router must implement an appropriate QoS
  330.       for each flow, in accordance with the service model.  The router
  331.       function that creates different qualities of service is called
  332.       "traffic control".  Traffic control in turn is implemented by
  333.       three components: the packet scheduler, the classifier, and
  334.       admission control.
  335.  
  336.  
  337.       o    Packet Scheduler
  338.  
  339.            The packet scheduler manages the forwarding of different
  340.            packet streams using a set of queues and perhaps other
  341.            mechanisms like timers.  The packet scheduler must be
  342.            implemented at the point where packets are queued; this is
  343.            the output driver level of a typical operating system, and
  344.  
  345.  
  346.  
  347. TBD                                                             [Page 6]
  348.  
  349.  
  350.  
  351.  
  352. Internet Draft      Integrated Services Architecture        October 1993
  353.  
  354.  
  355.            corresponds to the link layer protocol.  The details of the
  356.            scheduling algorithm may be specific to the particular output
  357.            medium.  For example, the output driver will need to invoke
  358.            the appropriate link-layer controls when interfacing to a
  359.            network technology that has an internal bandwidth allocation
  360.            mechanism.
  361.  
  362.            We have built a packet scheduler to implement the IS model
  363.            described in Section 3 and [SCZ93]; this is known as the CSZ
  364.            scheduler and is discussed further in Section 4.  We note
  365.            that the CSZ scheme is not mandatory to accomplish our
  366.            service model; indeed for parts of the network that are known
  367.            always to be underloaded, FIFO will deliver satisfactory
  368.            service.
  369.  
  370.            There is another component that could be considered part of
  371.            the packet scheduler or separate: the estimator [Jacobson91].
  372.            This algorithm is applied to measure properties of the
  373.            outgoing traffic stream, to develop statistics that control
  374.            packet scheduling and admission control.  This memo will
  375.            consider the estimator to be a part of the packet scheduler.
  376.  
  377.       o    Classifier
  378.  
  379.            For the purpose of traffic control (and accounting), each
  380.            incoming packet must be mapped into some class; all packets
  381.            in the same class get the same treatment from the packet
  382.            scheduler.  This mapping is performed by the classifier.
  383.            Choice of a class may be based upon the contents of the
  384.            existing packet header(s) and/or some additional
  385.            classification number added to each packet.
  386.  
  387.            A class might correspond to a broad category of flows, e.g.,
  388.            all video flows or all flows attributable to a particular
  389.            organization.  On the other hand, a class might hold only a
  390.            single flow.  A class is an abstraction that may be local to
  391.            a particular router; the same packet may be classified
  392.            differently by different routers along the path.  For
  393.            example, backbone routers may choose to map many flows into a
  394.            few aggregated classes, while routers nearer the periphery,
  395.            where there is much less aggregation, may use a separate
  396.            class for each flow.
  397.  
  398.       o    Admission Control
  399.  
  400.            Admission control implements the decision algorithm that a
  401.            router or host uses to determine whether a requested service
  402.            increment can be granted without impacting the earlier
  403.  
  404.  
  405.  
  406. TBD                                                             [Page 7]
  407.  
  408.  
  409.  
  410.  
  411. Internet Draft      Integrated Services Architecture        October 1993
  412.  
  413.  
  414.            guarantees.  The admission control algorithm must be
  415.            consistent with the service model, and it is logically part
  416.            of traffic control.  Although there are still open research
  417.            issues in admission control, a first cut exists [JCSZ92].
  418.  
  419.            Admission control makes its decision at each node, at the
  420.            time a host requests a real-time service along some path
  421.            through the Internet.  Admission control is sometimes
  422.            confused with policing or enforcement, which is a packet-by-
  423.            packet function at the "edge" of the network to ensure that a
  424.            host does not violate its promised traffic characteristics.
  425.            We consider policing to be one of the functions of the packet
  426.            scheduler.
  427.  
  428.            In addition to ensuring that QoS guarantees are met,
  429.            admission control will be concerned with enforcing
  430.            administrative policies on resource reservations.  Some
  431.            policies will demand authentication of those requesting
  432.            reservations.  Finally, admission control will play an
  433.            important role in accounting and administrative reporting.
  434.  
  435.  
  436.       It will generally be necessary to have some state specific to a
  437.       flow both in the endpoint hosts and in routers along the path of
  438.       that flow.  The host and router state required for a flow will be
  439.       created and maintained by a reservation setup protocol.  It may
  440.       not be possible to insist that there be only one reservation
  441.       protocol in the Internet, but we will argue that multiple
  442.       protocols for reserving protocols will cause confusion. We believe
  443.       that multiple protocols should exist only to support different
  444.       modes of reservation.
  445.  
  446.       Section 5 discusses a reservation setup protocol called RSVP (for
  447.       "ReSerVation Protocol") [RSVP93a, RSVP93b].  The set-up
  448.       requirements for the link-sharing protion of the service model are
  449.       far less clear.  While we expect that much of this can be done
  450.       through network management interfaces, and thus need not be part
  451.       of the overall architecture, we may also need RSVP to play a role
  452.       in providing the required state.
  453.  
  454.       Figure 1 shows how these components would fit into an IP router
  455.       that has been extended to provide integrated services.  The router
  456.       has two broad functional divisions:  the forwarding path below the
  457.       double horizontal line, and the background code above the line.
  458.  
  459.       The forwarding path of the router is executed for every packet and
  460.       must therefore be highly optimized.  Indeed, in most commercial
  461.       routers, its implementation involves a hardware assist.  The
  462.  
  463.  
  464.  
  465. TBD                                                             [Page 8]
  466.  
  467.  
  468.  
  469.  
  470. Internet Draft      Integrated Services Architecture        October 1993
  471.  
  472.  
  473.       forwarding path is divided into three sections: input driver,
  474.       internet forwarder, and output driver.  The internet forwarder
  475.       interprets the internetworking protocol header appropriate to the
  476.       protocol suite, e.g., the IP header for TCP/IP, or the CLNP header
  477.       for OSI.  For each packet, a forwarder executes a suite-dependent
  478.       classifier and then passes the packet and its class to the
  479.       appropriate output driver.  A classifier must be both general and
  480.       efficient.  One way to gain efficiency may be to use a common
  481.       mechanism for the classifier and route lookup.
  482.  
  483.       The output driver implements the packet scheduler. (Layerists will
  484.       observe that the output driver now has two distinct sections: the
  485.       packet scheduler that is largely independent of the detailed
  486.       mechanics of the interface, and the actual I/O driver that is only
  487.       concerned with the grittiness of the hardware.  The estimator
  488.       lives somewhere in between.  We only note this fact, without
  489.       suggesting that it be elevated to a principle.).
  490.  
  491.  
  492.         _____________________________________________________________
  493.        |         ____________     ____________     ___________       |
  494.        |        |            |   | Reservation|   |           |      |
  495.        |        |   Routing  |   |    Setup   |   | Management|      |
  496.        |        |    Agent   |   |    Agent   |   |  Agent    |      |
  497.        |        |______._____|   |______._____|   |_____._____|      |
  498.        |               .                .    |          .            |
  499.        |               .                .   _V________  .            |
  500.        |               .                .  | Admission| .            |
  501.        |               .                .  |  Control | .            |
  502.        |               V                .  |__________| .            |
  503.        |           [Routing ]           V               V            |
  504.        |           [Database]     [Traffic Control Database]         |
  505.        |=============================================================|
  506.        |        |                  |     _______                     |
  507.        |        |   __________     |    |_|_|_|_| => o               |
  508.        |        |  |          |    |      Packet     |     _____     |
  509.        |     ====> |Classifier| =====>   Scheduler   |===>|_|_|_| ===>
  510.        |        |  |__________|    |     _______     |               |
  511.        |        |                  |    |_|_|_|_| => o               |
  512.        | Input  |   Internet       |                                 |
  513.        | Driver |   Forwarder      |     O u t p u t   D r i v e r   |
  514.        |________|__________________|_________________________________|
  515.  
  516.       Figure 1: Implementation Reference Model for Routers}
  517.  
  518.  
  519.       The background code is simply loaded into router memory and
  520.       executed by a general-purpose CPU.  These background routines
  521.  
  522.  
  523.  
  524. TBD                                                             [Page 9]
  525.  
  526.  
  527.  
  528.  
  529. Internet Draft      Integrated Services Architecture        October 1993
  530.  
  531.  
  532.       create data structures that control the forwarding path.  The
  533.       routing agent implements a particular routing protocol and builds
  534.       a routing database.  The reservation setup agent implements the
  535.       protocol used to set up resource reservations; see Section 5.  If
  536.       admission control gives the "OK" for a new request, the
  537.       appropriate changes are made to the classifier and packet
  538.       scheduler control data to implement the desired QoS.  Finally,
  539.       every router supports an agent for network management.  This agent
  540.       must be able to modify the classifier and packet scheduler
  541.       databases to set up controlled link-sharing and to set admission
  542.       control policies.
  543.  
  544.       The implementation framework for a host is generally similar to
  545.       that for a router, with the addition of applications.  Rather than
  546.       being forwarded, host data originates and terminates in an
  547.       application.  Real-time applications use an API to a local
  548.       reservation setup agent to request the desired QoS for a flow.
  549.       The IP output routine of a host may need no classifier, since the
  550.       class assignment for a packet can be specified in the local I/O
  551.       control structure corresponding to the flow.
  552.  
  553.       In routers, integrated service will require changes to both the
  554.       forwarding path and the background functions.  The forwarding
  555.       path, which may depend upon hardware acceleration for performance,
  556.       will be the more difficult and costly to change.  It will be vital
  557.       to choose a set of traffic control mechanisms that is general and
  558.       adaptable to a wide variety of policy requirements and future
  559.       circumstances, and that can be implemented efficiently.
  560.  
  561. 3. INTEGRATED SERVICES MODEL
  562.  
  563.    A service model is embedded within the network service interface
  564.    invoked by applications and defines the set of services they can
  565.    request.  While both the underlying network technology and the
  566.    overlying suite of applications will evolve, the need for
  567.    compatibility requires that this service interface remain relatively
  568.    stable (or, more properly, extensible; we do expect to add new
  569.    services in the future but we also expect that it will be hard to
  570.    change existing services).  Because of its enduring impact, the
  571.    service model should not be designed in reference to any specific
  572.    network artifact but rather should be based on fundamental service
  573.    requirements.
  574.  
  575.    We now briefly describe a proposal for a core set of services for the
  576.    Internet; this proposed core service model is more fully described in
  577.    [SCZ93a, SCZ93b].  This core service model addresses those services
  578.    which relate most directly to the time-of-delivery of packets.  We
  579.    leave the remaining services (such as routing, synchronization, and
  580.  
  581.  
  582.  
  583. TBD                                                            [Page 10]
  584.  
  585.  
  586.  
  587.  
  588. Internet Draft      Integrated Services Architecture        October 1993
  589.  
  590.  
  591.    security) for other standardization venues.  A service model consists
  592.    of a set of service commitments; in response to a service request the
  593.    network commits to deliver some service.  These service commitments
  594.    can be categorized by the entity to whom they are made: they can be
  595.    made to either individual flows or to collective entities (classes of
  596.    flows).  The service commitments made to individual flows are
  597.    intended to provide reasonable application performance, and thus are
  598.    driven by the ergonomic requirements of the applications; these
  599.    service commitments relate to the quality of service delivered to an
  600.    individual flow.  The service commitments made to collective entities
  601.    are driven by resource-sharing, or economic, requirements; these
  602.    service commitments relate to the aggregate resources made available
  603.    to the various entities.
  604.  
  605.    In this section we start by exploring the service requirements of
  606.    individual flows and propose a corresponding set of services.  We
  607.    then discuss the service requirements and services for resource
  608.    sharing.  Finally, we conclude with some remarks about packet
  609.    dropping.
  610.  
  611.    3.1 Quality of Service Requirements
  612.  
  613.       The core service model is concerned almost exclusively with the
  614.       time-of-delivery of packets.  Thus, per-packet delay is the
  615.       central quantity about which the network makes quality of service
  616.       commitments.  We make the even more restrictive assumption that
  617.       the only quantity about which we make quantitative service
  618.       commitments are bounds on the maximum and minimum delays.
  619.  
  620.       The degree to which application performance depends on low delay
  621.       service varies widely, and we can make several qualitative
  622.       distinctions between applications based on the degree of their
  623.       dependence.  One class of applications needs the data in each
  624.       packet by a certain time and, if the data has not arrived by then,
  625.       the data is essentially worthless; we call these real-time
  626.       applications.  Another class of applications will always wait for
  627.       data to arrive; we call these " elastic" applications.  We now
  628.       consider the delay requirements of these two classes separately.
  629.  
  630.       3.1.1 Real-Time Applications
  631.  
  632.          An important class of such real-time applications, which are
  633.          the only real-time applications we explicitly consider in the
  634.          arguments that follow, are "playback" applications.  In a
  635.          playback application, the source takes some signal, packetizes
  636.          it, and then transmits the packets over the network.  The
  637.          network inevitably introduces some variation in the delay of
  638.          the delivered packets.  The receiver depacketizes the data and
  639.  
  640.  
  641.  
  642. TBD                                                            [Page 11]
  643.  
  644.  
  645.  
  646.  
  647. Internet Draft      Integrated Services Architecture        October 1993
  648.  
  649.  
  650.          then attempts to faithfully play back the signal.  This is done
  651.          by buffering the incoming data and then replaying the signal at
  652.          some fixed offset delay from the original departure time; the
  653.          term "playback point" refers to the point in time which is
  654.          offset from the original departure time by this fixed delay.
  655.          Any data that arrives before its associated playback point can
  656.          be used to reconstruct the signal; data arriving after the
  657.          playback point is essentially useless in reconstructing the
  658.          real-time signal.
  659.  
  660.          In order to choose a reasonable value for the offset delay, an
  661.          application needs some "a priori" characterization of the
  662.          maximum delay its packets will experience.  This "a priori"
  663.          characterization could either be provided by the network in a
  664.          quantitative service commitment to a delay bound, or through
  665.          the observation of the delays experienced by the previously
  666.          arrived packets; the application needs to know what delays to
  667.          expect, but this expectation need not be constant for the
  668.          entire duration of the flow.
  669.  
  670.          The performance of a playback application is measured along two
  671.          dimensions:  latency and fidelity.  Some playback applications,
  672.          in particular those that involve interaction between the two
  673.          ends of a connection such as a phone call, are rather sensitive
  674.          to the latency; other playback applications, such as
  675.          transmitting a movie or lecture, are not.  Similarly,
  676.          applications exhibit a wide range of sensitivity to loss of
  677.          fidelity.  We will consider two somewhat artificially
  678.          dichotomous classes: intolerant applications, which require an
  679.          absolutely faithful playback, and tolerant applications, which
  680.          can tolerate some loss of fidelity.  We expect that the vast
  681.          bulk of audio and video applications will be tolerant, but we
  682.          also suspect that there will be other applications, such as
  683.          circuit emulation, that are intolerant.
  684.  
  685.          Delay can affect the performance of playback applications in
  686.          two ways.  First, the value of the offset delay, which is
  687.          determined by predictions about the future packet delays,
  688.          determines the latency of the application.  Second, the delays
  689.          of individual packets can decrease the fidelity of the playback
  690.          by exceeding the offset delay; the application then can either
  691.          change the offset delay in order to play back late packets
  692.          (which introduces distortion) or merely discard late packets
  693.          (which creates an incomplete signal).  The two different ways
  694.          of coping with late packets offer a choice between an
  695.          incomplete signal and a distorted one, and the optimal choice
  696.          will depend on the details of the application, but the
  697.          important point is that late packets necessarily decrease
  698.  
  699.  
  700.  
  701. TBD                                                            [Page 12]
  702.  
  703.  
  704.  
  705.  
  706. Internet Draft      Integrated Services Architecture        October 1993
  707.  
  708.  
  709.          fidelity.
  710.  
  711.          Intolerant applications must use a fixed offset delay, since
  712.          any variation in the offset delay will introduce some
  713.          distortion in the playback.  For a given distribution of packet
  714.          delays, this fixed offset delay must be larger than the
  715.          absolute maximum delay, to avoid the possibility of late
  716.          packets.   Such an application can only set its offset delay
  717.          appropriately if it is given a perfectly reliable upper bound
  718.          on the maximum delay of each packet.  We call a service
  719.          characterized by a perfectly reliable upper bound on delay "
  720.          guaranteed service", and propose this as the appropriate
  721.          service model for intolerant playback applications.
  722.  
  723.          In contrast, tolerant applications need not set their offset
  724.          delay greater than the absolute maximum delay, since they can
  725.          tolerate some late packets.  Moreover, instead of using a
  726.          single fixed value for the offset delay, they can attempt to
  727.          reduce their latency by varying their offset delays in response
  728.          to the actual packet delays experienced in the recent past.  We
  729.          call applications which vary their offset delays in this manner
  730.          "adaptive" playback applications.
  731.  
  732.          For tolerant applications we propose a service model called "
  733.          predictive service" which supplies a fairly reliable, but not
  734.          perfectly reliable, delay bound.  This bound, in contrast to
  735.          the bound in the guaranteed service, is not based on worst case
  736.          assumptions on the behavior of other flows.  Instead, this
  737.          bound might be computed with properly conservative predictions
  738.          about the behavior of other flows.  If the network turns out to
  739.          be wrong and the bound is violated, the application's
  740.          performance will perhaps suffer, but the users are willing to
  741.          tolerate such interruptions in service in return for the
  742.          presumed lower cost of the service.  Furthermore, because many
  743.          of the tolerant applications are adaptive, we augment the
  744.          predictive service to also give "minimax" service, which is to
  745.          attempt to minimize the ex post maximum delay.  This service is
  746.          not trying to minimize the delay of every packet, but rather is
  747.          trying to pull in the tail of the delay distribution.
  748.  
  749.          It is clear that given a choice, with all other things being
  750.          equal, an application would perform no worse with absolutely
  751.          reliable bounds than with fairly reliable bounds.  Why, then,
  752.          do we offer predictive service?  The key consideration here is
  753.          efficiency; when one relaxes the service requirements from
  754.          perfectly to fairly reliable bounds, this increases the level
  755.          of network utilization that can be sustained, and thus the
  756.          price of the predictive service will presumably be lower than
  757.  
  758.  
  759.  
  760. TBD                                                            [Page 13]
  761.  
  762.  
  763.  
  764.  
  765. Internet Draft      Integrated Services Architecture        October 1993
  766.  
  767.  
  768.          that of guaranteed service.  The predictive service class is
  769.          motivated by the conjecture that the performance penalty will
  770.          be small for tolerant applications but the overall efficiency
  771.          gain will be quite large.
  772.  
  773.          In order to provide a delay bound, the nature of the traffic
  774.          from the source must be characterized, and there must be some
  775.          admission control algorithm which insures that a requested flow
  776.          can actually be accommodated. A fundamental point of our
  777.          overall architecture is that traffic characterization and
  778.          admission control are necessary for these real-time delay bound
  779.          services.  So far we have assumed that an application's data
  780.          generation process is an intrinsic property unaffected by the
  781.          network.  However, there are likely to be many audio and video
  782.          applications which can adjust their coding scheme and thus can
  783.          alter the resulting data generation process depending on the
  784.          network service available.  This alteration of the coding
  785.          scheme will present a tradeoff between fidelity (of the coding
  786.          scheme itself, not of the playback process) and the bandwidth
  787.          requirements of the flow.  Such "rate-adaptive" playback
  788.          applications have the advantage that they can adjust to the
  789.          current network conditions not just by resetting their playback
  790.          point but also by adjusting the traffic pattern itself.  For
  791.          rate-adaptive applications, the traffic characterizations used
  792.          in the service commitment are not immutable.  We can thus
  793.          augment the service model by allowing the network to notify
  794.          (either implicitly through packet drops or explicitly through
  795.          control packets) rate-adaptive applications to change their
  796.          traffic characterization.
  797.  
  798.       3.1.2 Elastic Applications
  799.  
  800.          While real-time applications do not wait for late data to
  801.          arrive, elastic applications will always wait for data to
  802.          arrive.  It is not that these applications are insensitive to
  803.          delay; to the contrary, significantly increasing the delay of a
  804.          packet will often harm the application's performance.  Rather,
  805.          the key point is that the application typically uses the
  806.          arriving data immediately, rather than buffering it for some
  807.          later time, and will always choose to wait for the incoming
  808.          data rather than proceed without it.  Because arriving data can
  809.          be used immediately, these applications do not require any a
  810.          priori characterization of the service in order for the
  811.          application to function.  Generally speaking, it is likely that
  812.          for a given distribution of packet delays, the perceived
  813.          performance of elastic applications will depend more on the
  814.          average delay than on the tail of the delay distribution.  One
  815.          can think of several categories of such elastic applications:
  816.  
  817.  
  818.  
  819. TBD                                                            [Page 14]
  820.  
  821.  
  822.  
  823.  
  824. Internet Draft      Integrated Services Architecture        October 1993
  825.  
  826.  
  827.          interactive burst (Telnet, X, NFS), interactive bulk transfer
  828.          (FTP), and asynchronous bulk transfer (electronic mail, FAX).
  829.          The delay requirements of these elastic applications vary from
  830.          rather demanding for interactive burst applications to rather
  831.          lax for asynchronous bulk transfer, with interactive bulk
  832.          transfer being intermediate between them.
  833.  
  834.          An appropriate service model for elastic applications is to
  835.          provide "as-soon-as-possible", or ASAP service. (For
  836.          compatibility with historical usage, we will use the term
  837.          best-effort service when referring to ASAP service.).  We
  838.          furthermore propose to offer several classes of best-effort
  839.          service to reflect the relative delay sensitivities of
  840.          different elastic applications.  This service model allows
  841.          interactive burst applications to have lower delays than
  842.          interactive bulk applications, which in turn would have lower
  843.          delays than asynchronous bulk applications.  In contrast to the
  844.          real-time service models, applications using this service are
  845.          not subject to admission control.
  846.  
  847.          The taxonomy of applications into tolerant playback, intolerant
  848.          playback, and elastic is neither exact nor complete, but was
  849.          only used to guide the development of the core service model.
  850.          The resulting core service model should be judged not on the
  851.          validity of the underlying taxonomy but rather on its ability
  852.          to adequately meet the needs of the entire spectrum of
  853.          applications.  In particular, not all real-time applications
  854.          are playback applications; for example, one might imagine a
  855.          visualization application which merely displayed the image
  856.          encoded in each packet whenever it arrived.  However, non-
  857.          playback applications can still use either the guaranteed or
  858.          predictive real-time service model, although these services are
  859.          not specifically tailored to their needs.  Similarly, playback
  860.          applications cannot be neatly classified as either tolerant or
  861.          intolerant, but rather fall along a continuum; offering both
  862.          guaranteed and predictive service allows applications to make
  863.          their own tradeoff between fidelity, latency, and cost.
  864.          Despite these obvious deficiencies in the taxonomy, we expect
  865.          that it describes the service requirements of current and
  866.          future applications well enough so that our core service model
  867.          can adequately meet all application needs.
  868.  
  869.    3.2 Resource-Sharing Requirements and Service Models
  870.  
  871.       The last section considered quality of service commitments; these
  872.       commitments dictate how the network must allocate its resources
  873.       among the individual flows.  This allocation of resources is
  874.       typically negotiated on a flow-by-flow basis as each flow requests
  875.  
  876.  
  877.  
  878. TBD                                                            [Page 15]
  879.  
  880.  
  881.  
  882.  
  883. Internet Draft      Integrated Services Architecture        October 1993
  884.  
  885.  
  886.       admission to the network, and does not address any of the policy
  887.       issues that arise when one looks at collections of flows.  To
  888.       address these collective policy issues, we now discuss resource-
  889.       sharing service commitments.  Recall that for individual quality
  890.       of service commitments we focused on delay as the only quantity of
  891.       interest.  Here, we postulate that the quantity of primary
  892.       interest in resource-sharing is aggregate bandwidth on individual
  893.       links.  Thus, this component of the service model, called "link-
  894.       sharing", addresses the question of how to share the aggregate
  895.       bandwidth of a link among various collective entities according to
  896.       some set of specified shares.  There are several examples that are
  897.       commonly used to explain the requirement of link-sharing among
  898.       collective entities.
  899.  
  900.       Multi-entity link-sharing. -- A link may be purchased and used
  901.       jointly by several organizations, government agencies or the like.
  902.       They may wish to insure that under overload the link is shared in
  903.       a controlled way, perhaps in proportion to the capital investment
  904.       of each entity.  At the same time, they might wish that when the
  905.       link is underloaded, any one of the entities could utilize all the
  906.       idle bandwidth.
  907.  
  908.       Multi-protocol link-sharing -- In a multi-protocol Internet, it
  909.       may be desired to prevent one protocol family (DECnet, IP, IPX,
  910.       OSI, SNA, etc.) from overloading the link and excluding the other
  911.       families. This is important because different families may have
  912.       different methods of detecting and responding to congestion, and
  913.       some methods may be more "aggressive" than others. This could lead
  914.       to a situation in which one protocol backs off more rapidly than
  915.       another under congestion, and ends up getting no bandwidth.
  916.       Explicit control in the router may be required to correct this.
  917.       Again, one might expect that this control should apply only under
  918.       overload, while permitting an idle link to be used in any
  919.       proportion.
  920.  
  921.       Multi-service sharing -- Within a protocol family such as IP, an
  922.       administrator might wish to limit the fraction of bandwidth
  923.       allocated to various service classes.  For example, an
  924.       administrator might wish to limit the amount of real-time traffic
  925.       to some fraction of the link, to avoid preempting elastic traffic
  926.       such as FTP.
  927.  
  928.       In general terms, the link-sharing service model is to share the
  929.       aggregate bandwidth according to some specified shares.  We can
  930.       extend this link-sharing service model to a hierarchical version.
  931.       For instance, a link could be divided between a number of
  932.       organizations, each of which would divide the resulting allocation
  933.       among a number of protocols, each of which would be divided among
  934.  
  935.  
  936.  
  937. TBD                                                            [Page 16]
  938.  
  939.  
  940.  
  941.  
  942. Internet Draft      Integrated Services Architecture        October 1993
  943.  
  944.  
  945.       a number of services.  Here, the sharing is defined by a tree with
  946.       shares assigned to each leaf node.
  947.  
  948.       An idealized fluid model of instantaneous link-sharing with
  949.       proportional sharing of excess is the fluid processor sharing
  950.       model (introduced in [DKS89] and further explored in [Parekh92]
  951.       and generalized to the hierarchical case) where at every instant
  952.       the available bandwidth is shared between the active entities
  953.       (i.e., those having packets in the queue) in proportion to the
  954.       assigned shares of the resource.  This fluid model exhibits the
  955.       desired policy behavior but is, of course, an unrealistic
  956.       idealization.  We then propose that the actual service model
  957.       should be to approximate, as closely as possible, the bandwidth
  958.       shares produced by this ideal fluid model.  It is not necessary to
  959.       require that the specific order of packet departures match those
  960.       of the fluid model since we presume that all detailed per-packet
  961.       delay requirements of individual flows are addressed through
  962.       quality of service commitments and, furthermore, the satisfaction
  963.       with the link-sharing service delivered will probably not depend
  964.       very sensitively on small deviations from the scheduling implied
  965.       by the fluid link-sharing model.
  966.  
  967.       We previously observed that admission control was necessary to
  968.       ensure that the real-time service commitments could be met.
  969.       Similarly, admission control will again be necessary to ensure
  970.       that the link-sharing commitments can be met.  For each entity,
  971.       admission control must keep the cumulative guaranteed and
  972.       predictive traffic from exceeding the assigned link-share.
  973.  
  974.    3.3 Packet Dropping
  975.  
  976.       So far, we have implicitly assumed that all packets within a flow
  977.       were equally important.  However, in many audio and video streams,
  978.       some packets are more valuable than others.  We therefore propose
  979.       augmenting the service model with a "preemptable" packet service,
  980.       whereby some of the packets within a flow could be marked as
  981.       preemptable.  When the network was in danger of not meeting some
  982.       of its quantitative service commitments, it could exercise a
  983.       certain packet's "preemptability option" and discard the packet
  984.       (not merely delay it, since that would introduce out-of-order
  985.       problems).  By discarding these preemptable packets, a router can
  986.       reduce the delays of the not-preempted packets.
  987.  
  988.       Furthermore, one can define a class of packets that is not subject
  989.       to admission control.  In the scenario described above where
  990.       preemptable packets are dropped only when quantitative service
  991.       commitments are in danger of being violated, the expectation is
  992.       that preemptable packets will almost always be delivered and thus
  993.  
  994.  
  995.  
  996. TBD                                                            [Page 17]
  997.  
  998.  
  999.  
  1000.  
  1001. Internet Draft      Integrated Services Architecture        October 1993
  1002.  
  1003.  
  1004.       they must included in the traffic description used in admission
  1005.       control.  However, we can extend preemptability to the extreme
  1006.       case of "expendable" packets (the term expendable is used to
  1007.       connote an extreme degree of preemptability), where the
  1008.       expectation is that many of these expendable packets will not be
  1009.       delivered.  One can then exclude expendable packets from the
  1010.       traffic description used in admission control; i.e., the packets
  1011.       are not considered part of the flow from the perspective of
  1012.       admission control, since there is no commitment that they will be
  1013.       delivered.
  1014.  
  1015.    3.4 Usage Feedback
  1016.  
  1017.       Another important issue in the service is the model for usage
  1018.       feedback, also known as "accounting", to prevent abuse of network
  1019.       resources.   The link-sharing service described earlier can be
  1020.       used to provide administratively-imposed limits on usage.
  1021.       However, a more free-market model of network access will require
  1022.       back-pressure on users for the network resources they reserve.
  1023.       This is a highly contentious issue, and we are not prepared to say
  1024.       more about it at this time.
  1025.  
  1026. 4. TRAFFIC CONTROL
  1027.  
  1028.    We first survey very briefly the possible traffic control mechanisms.
  1029.    Then in section 4.2 we apply a subset of these mechanisms to support
  1030.    the various services that we have proposed.
  1031.  
  1032.    4.1 Possible Mechanisms
  1033.  
  1034.       In the packet forwarding path, there is actually a very limited
  1035.       set of actions that a router can take.  Given a particular packet,
  1036.       a router must select a route for it; in addition the router can
  1037.       either forward it or drop it, and the router may reorder it with
  1038.       respect to other packets waiting to depart.  The router can also
  1039.       hold the packet, even though the link is idle.  These are the
  1040.       building blocks from which we must fashion the desired behavior.
  1041.  
  1042.       4.1.1 Packet Scheduling
  1043.  
  1044.          The basic function of packet scheduling is to reorder the
  1045.          output queue.  There are many papers that have been written on
  1046.          possible ways to manage the output queue, and the resulting
  1047.          behavior.  Perhaps the simplest approach is a priority scheme,
  1048.          in which packets are ordered by priority, and highest priority
  1049.          packets always leave first.  This has the effect of giving some
  1050.          packets absolute preference over others; if there are enough of
  1051.          the higher priority packets, the lower priority class can be
  1052.  
  1053.  
  1054.  
  1055. TBD                                                            [Page 18]
  1056.  
  1057.  
  1058.  
  1059.  
  1060. Internet Draft      Integrated Services Architecture        October 1993
  1061.  
  1062.  
  1063.          completely prevented from being sent.
  1064.  
  1065.          An alternative scheduling scheme is round-robin or some
  1066.          variant, which gives different classes of packets access to a
  1067.          share of the link. A variant called Weighted Fair Queueing, or
  1068.          WFQ, has been demonstrated to allocate the total bandwidth of a
  1069.          link into specified shares.
  1070.  
  1071.          There are more complex schemes for queue management, most of
  1072.          which involve observing the service objectives of individual
  1073.          packets, such as delivery deadline, and ordering packets based
  1074.          on these criteria.
  1075.  
  1076.       4.1.2 Packet dropping
  1077.  
  1078.          The controlled dropping of packets is as important as their
  1079.          scheduling.
  1080.  
  1081.          Most obviously, a router must drop packets when its buffers are
  1082.          all full. This fact, however, does not determine which packet
  1083.          should be dropped.  Dropping the arriving packet, while simple,
  1084.          may cause undesired behavior.
  1085.  
  1086.          In the context of today's Internet, with TCP operating over
  1087.          best effort IP service, dropping a packet is taken by TCP as a
  1088.          signal of congestion and causes it to reduce its load on the
  1089.          network.  Thus, picking a packet to drop is the same as picking
  1090.          a source to throttle.  Without going into any particular
  1091.          algorithm, this simple relation suggests that some specific
  1092.          dropping controls should be implemented in routers to improve
  1093.          congestion control.
  1094.  
  1095.          In the context of real-time services, dropping more directly
  1096.          relates to achieving the desired quality of service. If a queue
  1097.          builds up, dropping one packet reduces the delay of all the
  1098.          packets behind it in the queue. The loss of one can contribute
  1099.          to the success of many.  The problem for the implementor is to
  1100.          determine when the service objective (the delay bound) is in
  1101.          danger of being violated. One cannot look at queue length as an
  1102.          indication of how long packets have sat in a queue. If there is
  1103.          a priority scheme in place, packets of lower priority can be
  1104.          pre-empted indefinitely, so even a short queue may have very
  1105.          old packets in it. While actual time stamps could be used to
  1106.          measure holding time, the complexity may be unacceptable.
  1107.  
  1108.          Some simple dropping schemes, such as combining all the buffers
  1109.          in a single global pool, and dropping the arriving packet if
  1110.          the pool is full, can defeat the service objective of a WFQ
  1111.  
  1112.  
  1113.  
  1114. TBD                                                            [Page 19]
  1115.  
  1116.  
  1117.  
  1118.  
  1119. Internet Draft      Integrated Services Architecture        October 1993
  1120.  
  1121.  
  1122.          scheduling scheme.  Thus, dropping and scheduling must be co-
  1123.          ordinated.
  1124.  
  1125.       4.1.3 Packet classification
  1126.  
  1127.          The above discussion of scheduling and dropping presumed that
  1128.          the packet had been classified into some flow or sequence of
  1129.          packets that should be treated in a specified way. A
  1130.          preliminary to this sort of processing is the classification
  1131.          itself.  Today a router looks at the destination address, and
  1132.          selects a route.  Destination address is not sufficient to
  1133.          select the class of service a packet must receive. More
  1134.          information is needed.
  1135.  
  1136.          One approach is to abandon the IP datagram model for a virtual
  1137.          circuit model, in which a circuit is set up with specific
  1138.          service attributes, and the packet carries a circuit
  1139.          identifier.  This is the approach of ATM as well as protocols
  1140.          such as ST-II [ST2-90].  Another model, less hostile to IP, is
  1141.          to allow the router to look at more fields in the packet, such
  1142.          as the source address, the protocol number and the port fields.
  1143.          Thus, video streams might be recognized by a particular well-
  1144.          known port field in the UDP header, or a particular flow might
  1145.          be recognized by looking at both the source and destination
  1146.          port numbers.  This more complex comparison, in practice, seems
  1147.          to function very well in sorting packets into classes.
  1148.  
  1149.  
  1150.          The classifier implementation issues are complexity and
  1151.          processing overhead.  Current experience suggests that careful
  1152.          implementation of efficient algorithms can lead to efficient
  1153.          classification of IP packets.  This result is very important,
  1154.          since it allows us to add QOS support to existing applications,
  1155.          such as Telnet, which are based on existing IP headers.  An
  1156.          intermediate approach, as advocated in the design of SIP and
  1157.          other IPng proposals, is to provide a "flow-id" field as part
  1158.          of the IP-like packet header.
  1159.  
  1160.       4.1.4 Admission Control
  1161.  
  1162.          As we stated in the introduction, real-time service depends on
  1163.          setting up state in the router and making commitments to
  1164.          certain classes of packets.  In order to insure that these
  1165.          commitments can be met, it is necessary that resources be
  1166.          explicitly requested, so that the request can be refused if the
  1167.          resources are not available.  The decision about resource
  1168.          availability is called admission control.
  1169.  
  1170.  
  1171.  
  1172.  
  1173. TBD                                                            [Page 20]
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Internet Draft      Integrated Services Architecture        October 1993
  1179.  
  1180.  
  1181.          Admission control requires that the router understand the
  1182.          demands that are currently being made on its assets.  The
  1183.          approach traditionally proposed is to remember the service
  1184.          parameters of past requests, and make a computation based on
  1185.          the worst-case bounds on each service.  A recent proposal,
  1186.          which is likely to provide better link utilization, is to
  1187.          program the router to measure the actual usage by existing
  1188.          packet flows, and to use this measured information as a basis
  1189.          of admitting new flows [JCSZ92]. This approach is subject to
  1190.          more risk of overload, but may prove much more effective in
  1191.          using bandwidth.
  1192.  
  1193.          Note that while the need for admission control is part of the
  1194.          global service model, the details of the algorithm run in each
  1195.          router is a local matter. Thus, vendors can compete by
  1196.          developing and marketing better admission control algorithms,
  1197.          which lead to higher link loadings with fewer service
  1198.          overloads.
  1199.  
  1200.    4.2 Applying the Mechanisms
  1201.  
  1202.       The various tools described above can be combined to support the
  1203.       services which were discussed in section 3.
  1204.  
  1205.  
  1206.       o    Guaranteed delay bounds
  1207.  
  1208.            A theoretical result by Parekh [Parekh92] shows that if the
  1209.            router implements a WFQ scheduling discipline, and if the
  1210.            nature of the traffic source can be characterized (e.g. if it
  1211.            fits within some bound such as a token bucket) then there
  1212.            will be an absolute upper bound on the network delay of the
  1213.            traffic in question.  This simple and very powerful result
  1214.            applies not just to one switch, but to general networks of
  1215.            routers.  The result is a constructive one; that is, Parekh
  1216.            displays a source behavior which leads to the bound, and then
  1217.            shows that this behavior is the worst possible.  This means
  1218.            that the bound he computes is the best there can be, under
  1219.            these assumptions.
  1220.  
  1221.       o    Link sharing
  1222.  
  1223.            The same WFQ scheme can provide controlled link sharing.  The
  1224.            service objective here is not to bound delay, but to limit
  1225.            overload shares on a link, while allowing any mix of traffic
  1226.            to proceed if there is spare capacity.  This use of WFQ is
  1227.            available in commercial routers today, and is used to
  1228.            segregate traffic into classes based on such things as
  1229.  
  1230.  
  1231.  
  1232. TBD                                                            [Page 21]
  1233.  
  1234.  
  1235.  
  1236.  
  1237. Internet Draft      Integrated Services Architecture        October 1993
  1238.  
  1239.  
  1240.            protocol type or application.  For example, one can allocate
  1241.            separate shares to TCP, IPX and SNA, and one can assure that
  1242.            network control traffic gets a guaranteed share of the link.
  1243.  
  1244.       o    Predictive real-time service
  1245.  
  1246.            This service is actually more subtle than guaranteed service.
  1247.            Its objective is to give a bound which is, on the one hand,
  1248.            as low as possible, and on the other hand, stable enough that
  1249.            the receiver can estimate it.  The WFQ mechanism leads to a
  1250.            guaranteed bound, but not necessarily a low bound.  In fact,
  1251.            mixing traffic into one queue, rather than separating it as
  1252.            in WFQ, leads to lower bounds, so long as the mixed traffic
  1253.            is generally similar (e.g., mixing traffic from multiple
  1254.            video coders makes sense, mixing video and FTP does not.)
  1255.  
  1256.            This suggests that we need a two-tier mechanism, in which the
  1257.            first tier separates traffic which has different service
  1258.            objectives, and the second tier schedules traffic within each
  1259.            first tier class in order to meet its service objective.
  1260.  
  1261.  
  1262.    4.3 An example: The CSZ scheme
  1263.  
  1264.       As a proof of concept, a code package has been implemented which
  1265.       realizes the services discussed above. It actually uses a number
  1266.       of the basic tools, combined in a way specific to the service
  1267.       needs. We describe in general terms how it works, to suggest how
  1268.       services can be realized. We stress that there are other ways of
  1269.       building a router to meet the same service needs, and there are in
  1270.       fact other implementations being used today.
  1271.  
  1272.  
  1273.       At the top level, the CSZ code uses priority to separate the
  1274.       classes.  Guaranteed service gets the highest priority, (but only
  1275.       if it needs the access to meets its deadline), then predictive
  1276.       service, and then best effort service.  The priority scheme is
  1277.       enhanced to prevent overloads of real-time traffic from disrupting
  1278.       other services.
  1279.  
  1280.       Within the guaranteed service class (the highest first-tier
  1281.       class), WFQ is used to provide a separate guarantee for each
  1282.       class.
  1283.  
  1284.       Within the predictive service class, a further priority is used to
  1285.       provide sub-classes with different delay bounds.  Inside each
  1286.       predictive sub-class, simple FIFO queueing is used to mix the
  1287.       traffic, which seems to produce good overall delay behavior.  This
  1288.  
  1289.  
  1290.  
  1291. TBD                                                            [Page 22]
  1292.  
  1293.  
  1294.  
  1295.  
  1296. Internet Draft      Integrated Services Architecture        October 1993
  1297.  
  1298.  
  1299.       works because the top-tier algorithm has separated out the best
  1300.       effort traffic such as FTP.
  1301.  
  1302.       Within the best-effort class, WFQ is used to provide link sharing.
  1303.       Since there is a possible requirement for nested shares, this WFQ
  1304.       code can be used recursively.  There are thus two different uses
  1305.       of WFQ in this code, one to segregate the guaranteed classes, and
  1306.       one to segregate the link shares.  They are similar, but differ in
  1307.       detail.
  1308.  
  1309.       Within each link share of the best effort class, priority is used
  1310.       to permit more time-sensitive elastic traffic to precede other
  1311.       elastic traffic, e.g., to allow interactive traffic to precede
  1312.       asynchronous bulk transfers.
  1313.  
  1314.       The CSZ code thus uses both priority and WFQ in an alternating
  1315.       manner to build a mechanism to support a range of rather
  1316.       sophisticated service offerings.  This discussion is very brief,
  1317.       and does not touch on a number of significant issues, such as how
  1318.       the CSZ code fits real time traffic into the link sharing
  1319.       objectives.  But the basic building blocks are very simple, and
  1320.       very powerful.  In particular, while priority has been proposed as
  1321.       a key to real-time services, WFQ may be the more general and
  1322.       powerful of the two schemes.  It, rather than priority, supports
  1323.       guaranteed service and link sharing.
  1324.  
  1325. 5. RESERVATION SETUP PROTOCOL
  1326.  
  1327.    There are a number of requirements on a reservation setup protocol.
  1328.    It must be fundamentally designed for a multicast environment, and
  1329.    must accommodate heterogeneous service needs.  It must give flexible
  1330.    control over the manner in which reservations can be shared along
  1331.    branches of the multicast delivery trees.  It should be designed
  1332.    around the elementary action of adding one sender and/or receiver to
  1333.    an existing set, or deleting one.  It must be robust and scale well
  1334.    to large multicast groups.  Finally, it must provide for advance
  1335.    reservation of resources, and for the preemption that this implies.
  1336.  
  1337.    The protocol RSVP has been designed to meet these requirements
  1338.    [RSVP93a, RSVP93b].  This section discusses some of the issues in the
  1339.    design of RSVP.
  1340.  
  1341.    5.1 RSVP
  1342.  
  1343.       Figure 2 shows our basic model for multi-destination data
  1344.       distribution for a shared, distributed application.  The arrows
  1345.       indicate data flow from senders S1 and S2 to receivers R1, R2, and
  1346.       R3, and the cloud represents the distribution mesh created by the
  1347.  
  1348.  
  1349.  
  1350. TBD                                                            [Page 23]
  1351.  
  1352.  
  1353.  
  1354.  
  1355. Internet Draft      Integrated Services Architecture        October 1993
  1356.  
  1357.  
  1358.       multicast routing protocol.  Multicasting distribution replicates
  1359.       each data packet from a sender Si, for delivery to every receiver
  1360.       Rj (whether a packet actually arrives at Rj depends on the
  1361.       specified QoS and perhaps upon congestion encountered along the
  1362.       path).  We call this multicast distribution mesh an M-session.
  1363.  
  1364.  
  1365.                  Senders                              Receivers
  1366.                              _____________________
  1367.                             (                     ) ===> R1
  1368.                     S1 ===> (    Multicast        )
  1369.                             (                     ) ===> R2
  1370.                             (    distribution     )
  1371.                     S2 ===> (                     )
  1372.                             (                     ) ===> R3
  1373.                             (_____________________)
  1374.  
  1375.       Figure 2: Multicast Distribution Session (M-session)}
  1376.  
  1377.  
  1378.       In general, an RSVP reservation specifies the amount of resources
  1379.       to be reserved for all, or some subset of, the packets in a
  1380.       particular session.  The resource quantity is specified by a
  1381.       flowspec, which parametrizes the packet scheduling mechanism
  1382.       [Partridge92].  The packet subset to receive those resources is
  1383.       specified by a filter spec.  A filter spec defines a packet filter
  1384.       that is instantiated in the classifier.
  1385.  
  1386.       The RSVP protocol mechanisms provide a very general facility for
  1387.       creating and maintaining distributed reservation state across the
  1388.       mesh of multicast delivery paths.  These mechanisms treat
  1389.       flowspecs and filter specs as opaque binary data, simply handing
  1390.       them to the local traffic control machinery for interpretation.
  1391.       However, the service model presented to an application must
  1392.       specify how to encode flowspecs and filter specs.
  1393.  
  1394.    5.2 Reservation Styles
  1395.  
  1396.       RSVP models a reservation as two distinct components, a resource
  1397.       allocation and a packet filter.  The resource allocation specifies
  1398.       " what amount" of resources is reserved, while the packet filter
  1399.       selects "which packets" can use the resources.  This distinction
  1400.       between the reservation and filter, and the ability to change the
  1401.       filter without changing the resource allocation, enables RSVP to
  1402.       offer several different reservation styles, which is the manner in
  1403.       which the resource requirements of multiple receivers are
  1404.       aggregated.  These styles allow the resources reserved to more
  1405.       efficiently meet application requirements.
  1406.  
  1407.  
  1408.  
  1409. TBD                                                            [Page 24]
  1410.  
  1411.  
  1412.  
  1413.  
  1414. Internet Draft      Integrated Services Architecture        October 1993
  1415.  
  1416.  
  1417.       RSVP defines three reservation styles, "wildcard", " fixed-
  1418.       filter", and "dynamic-filter".  A wildcard reservation indicates
  1419.       that a source specific filter is not required, so any packets
  1420.       destined for the associated multicast group may use the reserved
  1421.       resources; this allows a single resource allocation to be made
  1422.       across all distribution paths for the group.  The wildcard
  1423.       reservation is useful in support of an audio conference, where at
  1424.       most a small number of sources are active simultaneously and may
  1425.       share the resource allocation.  When a source specific filter is
  1426.       required, a receiver may indicate whether it desires to receive a
  1427.       fixed set of sources, or instead desires the ability to
  1428.       dynamically switch its reservation among the sources.  A fixed-
  1429.       filter reservation cannot be changed during its lifetime without
  1430.       re-invoking setup and admission control; this allows resources to
  1431.       be shared among multiple reservations for the same source.
  1432.       Dynamic-filter reservations allow a receiver to modify its filter
  1433.       over time; this requires that sufficient resources be allocated to
  1434.       handle the worst case when all downstream receivers take input
  1435.       from different sources.
  1436.  
  1437.    5.3 Reservation Setup in RSVP
  1438.  
  1439.       The reservation setup protocol is used by hosts and routers to
  1440.       create, modify, and delete resource reservations for individual
  1441.       M-sessions, to support real-time applications.  However, an M-
  1442.       session may equally well carry elastic traffic with no real-time
  1443.       guarantees; resource reservations are an added feature.
  1444.  
  1445.       There are two different possible styles for reservation setup
  1446.       protocols, the "hard state" (HS) approach (also called
  1447.       "connection-oriented"), and the "soft state" (SS) approach (also
  1448.       called "connectionless").  In both approaches, multicast
  1449.       distribution is performed using flow-specific state in each router
  1450.       along the path.  Under the HS approach, this state is created and
  1451.       deleted in a fully deterministic manner by cooperation among the
  1452.       routers.  Once a host requests a session, the "network" takes
  1453.       responsibility for creating and later destroying the necessary
  1454.       state.  ST-II is a good example of the HS approach [ST2-90].
  1455.       Since management of HS session state is completely deterministic,
  1456.       the HS setup protocol must be reliable, with acknowledgments and
  1457.       retransmissions.  In order to achieve deterministic cleanup of
  1458.       state after a failure, there must be some mechanism to detect
  1459.       failures, i.e., an "up/down" protocol.  The router upstream
  1460.       (towards the source) from a failure takes responsibility for
  1461.       rebuilding the necessary state on the router(s) along an alternate
  1462.       route.
  1463.  
  1464.       In contrast, the SS approach regards the additional router state
  1465.  
  1466.  
  1467.  
  1468. TBD                                                            [Page 25]
  1469.  
  1470.  
  1471.  
  1472.  
  1473. Internet Draft      Integrated Services Architecture        October 1993
  1474.  
  1475.  
  1476.       to be cached information that is installed and periodically
  1477.       refreshed by the end hosts; unused state is timed out by the
  1478.       routers.  If the route changes, the refresh messages automatically
  1479.       install the necessary state along the new route.  The SS approach
  1480.       was chosen as the basis for RSVP, to obtain the simplicity and
  1481.       robustness that have been achieved by connectionless internet-
  1482.       layer protocols such as IP [Clark88].
  1483.  
  1484.       Another design issue concerns the roles of senders and receivers
  1485.       in the reservation setup.  A sender knows the qualities of the
  1486.       traffic stream it can send, while a receiver knows what it wants
  1487.       to (or can) receive.  We want to allow heterogeneous sender and
  1488.       receiver streams, so the distributed computation of resource
  1489.       reservations could require a perhaps complex and many-sided
  1490.       negotiation among senders and receivers.  This negotiation must be
  1491.       performed by some combination of application-level protocols and
  1492.       the reservation setup protocol.  We wish to keep the latter as
  1493.       simply as possible, but with sufficient generality to handle the
  1494.       great majority of setup situations.  This may imply some
  1495.       engineering judgments on which functions are really important and
  1496.       which are peripheral.
  1497.  
  1498.       One approach to performing the negotiation in the reservation
  1499.       protocol is a two-pass scheme.  In such a scheme, an "offered"
  1500.       flowspec is propagated along the multicast distribution tree from
  1501.       each sender Si to all receivers Rj.  Each router along the path
  1502.       records these values and perhaps adjusts them to reflect available
  1503.       capacity.  The receivers get these offers, generate corresponding
  1504.       "requested" flowspecs, and propagate them back along the same
  1505.       routes to the senders.  At each node, a local reconciliation must
  1506.       be performed between the offered and the requested flowspec to
  1507.       create a reservation, and an appropriately modified requested
  1508.       flowspec is passed on.  This two-pass scheme allows extensive
  1509.       properties like allowed delay to be distributed across hops in the
  1510.       path [Tenet90, ST2-90].
  1511.  
  1512.       RSVP [RSVP93b] uses an even simpler approach, a one-pass setup
  1513.       mechanism in which reservations are receiver-initiated.  A
  1514.       receiver is assumed to learn the senders' offered flowspecs by a
  1515.       higher-level mechanism ("out of band").  The receivers then
  1516.       generate and propagate request flowspecs towards the senders,
  1517.       making reservations in each router along the way.  This single-
  1518.       pass approach may be justified by the observation that in practice
  1519.       most of the queueing delay will not be evenly distributed but will
  1520.       occur at one or a few bottleneck nodes.  Furthermore, we do not
  1521.       think it will often be useful (or perhaps possible) to achieve
  1522.       great precision in resource guarantees.
  1523.  
  1524.  
  1525.  
  1526.  
  1527. TBD                                                            [Page 26]
  1528.  
  1529.  
  1530.  
  1531.  
  1532. Internet Draft      Integrated Services Architecture        October 1993
  1533.  
  1534.  
  1535.       In order to scale well to large groups, the internet-layer
  1536.       multicasting mechanism must address datagrams to logical addresses
  1537.       that implicitly name the destination hosts.  Any host may send to
  1538.       a group, but they must explicitly ask to join a group in order to
  1539.       receive its packets.  This receiver initiation of group membership
  1540.       is consistent with RSVP's use of receiver-initiated reservations.
  1541.  
  1542.    5.4 Routing and Reservations
  1543.  
  1544.       There is a fundamental conflict between dynamic routing and the
  1545.       necessity to bind resource reservations to the nodes along a
  1546.       particular route.  We could force static routing for real-time
  1547.       traffic, or we could rebuild the necessary session state on the
  1548.       alternate path when rerouting does occur [ST2-90].  Static routes
  1549.       for real-time traffic are unacceptable, since they prevent
  1550.       recovery from failures of lines or routers.  The ability of the
  1551.       Internet level to bypass link-layer failures is a fundamental
  1552.       property of the Internet architecture that must be retained for
  1553.       integrated services.
  1554.  
  1555.       When a session is set up, the optimal choice of route may depend
  1556.       upon the resources available along the possible paths.  Thus, we
  1557.       might add resources to the attributes of a link for the purposes
  1558.       of link-state computation.  The available resource levels would be
  1559.       broadcast to all routers, and all would do an identical resource
  1560.       computation to determine the route.
  1561.  
  1562.       RSVP does NOT use this general approach.  Routing protocols are
  1563.       already reaching the threshold of feasible complexity, and we do
  1564.       not want to add a significant new burden.  Instead, RSVP was
  1565.       designed to operate on top of any of the current generation of
  1566.       routing protocols and protocol implementations, without
  1567.       modification.  RSVP uses routes determined by a routing
  1568.       computation that depends only upon the connectivity, independent
  1569.       of the reservation state.  This simplification may occasionally
  1570.       lead to failure to create the best, or even any, real-time
  1571.       session.  Thus, in order to achieve higher reliability and
  1572.       efficiency, we must find ways of increasing the unification of
  1573.       resource setup with routing.  This will be an important area for
  1574.       future research and development and we foresee the following steps
  1575.       in this effort: TOS routing, in which routes are chosen with
  1576.       knowledge of the type-of-service requested; nailed-down routes, in
  1577.       which routes for real-time flows are fixed for the duration of the
  1578.       flow unless a failure occurs (this prevents route flapping from
  1579.       interfering with the stability of a flow); and eventually
  1580.       receiver-controlled, adaptive, multicast routing.
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586. TBD                                                            [Page 27]
  1587.  
  1588.  
  1589.  
  1590.  
  1591. Internet Draft      Integrated Services Architecture        October 1993
  1592.  
  1593.  
  1594. 6. ACKNOWLEDGMENTS
  1595.  
  1596.    Many Internet researchers have contributed to the work described in
  1597.    this memo.  We want to especially acknowledge, Steve Casner, Steve
  1598.    Deering, Deborah Estrin, Sally Floyd, Shai Herzog, Van Jacobson,
  1599.    Sugih Jamin, Craig Partridge, John Wroclawski, and Lixia Zhang.  This
  1600.    approach to Internet integrated services was initially discussed and
  1601.    organized in the End-to-End Research Group of the Internet Research
  1602.    Taskforce, and we are grateful to all members of that group for their
  1603.    interesting (and sometimes heated) discussions.
  1604.  
  1605. REFERENCES
  1606.  
  1607. [CerfKahn74]  Cerf, V. and R. Kahn, "A Protocol for Packet Network
  1608.     Intercommunication", IEEE Trans on Comm., Vol. Com-22, No. 5, May
  1609.     1974.
  1610.  
  1611. [Clark88]  Clark, D., "The Design Philosophy of the DARPA Internet
  1612.     Protocols", ACM SIGCOMM '88, August 1988.
  1613.  
  1614. [CSZ92]  Clark, D., Shenker, S., and L. Zhang, "Supporting Real-Time
  1615.     Applications in an Integrated Services Packet Network: Architecture
  1616.     and Mechanisms", Proc. SIGCOMM '92, Baltimore, MD, August 1992.
  1617.  
  1618. [DKS89]  Demers, A., Keshav, S., and S. Shenker.  "Analysis and
  1619.     Simulation of a Fair Queueing Algorithm", Journal of
  1620.     Internetworking: Research and Experience, 1, pp. 3-26, 1990.  Also
  1621.     in Proc. ACM SIGCOMM '89, pp 3-12.
  1622.  
  1623. [SCZ93a]  Shenker, S., Clark, D., and L. Zhang, "A Scheduling Service
  1624.     Model and a Scheduling Architecture for an Integrated Services
  1625.     Packet Network", submitted to ACM/IEEE Trans. on Networking.
  1626.  
  1627. [SCZ93b]  Shenker, S., Clark, D., and L. Zhang, "A Service Model for the
  1628.     Integrated Services Internet", Working draft, October 1993.
  1629.  
  1630. [Floyd92]  Floyd, S., "Issues in Flexible Resource Management for
  1631.     Datagram Networks", Proceedings of the 3rd Workshop on Very High
  1632.     Speed Networks, March 1992.
  1633.  
  1634. [Jacobson91]  Jacobson, V., "Private Communication", 1991.
  1635.  
  1636. [JCSZ92]  Jamin, S., Shenker, S., Zhang, L., and D. Clark, "An Admission
  1637.     Control Algorithm for Predictive Real-Time Service", Extended
  1638.     abstract, in Proc. Third International Workshop on Network and
  1639.     Operating System Support for Digital Audio and Video, San Diego, CA,
  1640.     Nov. 1992, pp.  73-91.
  1641.  
  1642.  
  1643.  
  1644.  
  1645. TBD                                                            [Page 28]
  1646.  
  1647.  
  1648.  
  1649.  
  1650. Internet Draft      Integrated Services Architecture        October 1993
  1651.  
  1652.  
  1653. [Parekh92]  Parekh, A., "A Generalized Processor Sharing Approach to
  1654.     Flow Control in Integrated Services Networks", Technical Report
  1655.     LIDS-TR-2089, Laboratory for Information and Decision Systems,
  1656.     Massachusetts Institute of Technology, 1992.
  1657.  
  1658. [Partridge92]  Partridge, C., "A Proposed Flow Specification", RFC-1363,
  1659.     July 1992.
  1660.  
  1661. [RSVP93a]  Zhang, L., Deering, S., Estrin, D., Shenker, S., and D.
  1662.     Zappala, "RSVP: A New Resource ReSerVation Protocol", Accepted for
  1663.     publication in IEEE Network, 1993.
  1664.  
  1665. [RSVP93b]  Zhang, L., Braden, R., Estrin, D., Herzog, S., and S. Jamin,
  1666.     "Resource ReSerVation Protocol (RSVP) - Version 1 Functional
  1667.     Specification", RFC in preparation, 1993.
  1668.  
  1669. [ST2-90]  Topolcic, C., "Experimental Internet Stream Protocol: Version
  1670.     2 (ST-II)", RFC-1190, October 1990.
  1671.  
  1672. [Tenet90]  Ferrari, D., and D. Verma, "A Scheme for Real-Time Channel
  1673.     Establishment in Wide-Area Networks", IEEE JSAC, Vol. 8, No. 3, pp
  1674.     368-379, April 1990.
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704. TBD                                                            [Page 29]
  1705.  
  1706.